package entidades;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;

public class Servidor {

	private String cpf;
	private String nome;
	private String naturalidade;
	private String nacionalidade;
	private String sexo;
	private Date dataNascimento;
	private String uf;
	private String nomePai;
	private String nomeMae;
	private boolean flagDeletado;

	private EstadoCivil estadoCivil;
	private GrauInstrucao grauInstrucao;
	private FormacaoAcademica formacaoAcademia;
	private Especializacao especializacao;
	private Identidade identidade;
	private Endereco endereco;
	private RegistroProfissional registroProfissional;
	private Collection<DadosFuncionais> dadosFuncionais;

	/**
	 * @param cpf
	 * @param nome
	 * @param naturalidade
	 * @param nacionalidade
	 * @param sexo
	 * @param dataNascimento
	 * @param uf
	 * @param nomePai
	 * @param nomeMae
	 * @param estadoCivil
	 * @param grauInstrucao
	 * @param formacaoAcademia
	 * @param especializacao
	 * @param identidade
	 * @param endereco
	 * @param registroProfissional
	 * @param dadosFuncionais
	 */
	public Servidor(String cpf, String nome, String naturalidade,
			String nacionalidade, String sexo, Date dataNascimento, String uf,
			String nomePai, String nomeMae, EstadoCivil estadoCivil,
			GrauInstrucao grauInstrucao, FormacaoAcademica formacaoAcademia,
			Especializacao especializacao, Identidade identidade,
			Endereco endereco, RegistroProfissional registroProfissional,
			Collection<DadosFuncionais> dadosFuncionais) {
		super();
		this.cpf = cpf;
		this.nome = nome;
		this.naturalidade = naturalidade;
		this.nacionalidade = nacionalidade;
		this.sexo = sexo;
		this.dataNascimento = dataNascimento;
		this.uf = uf;
		this.nomePai = nomePai;
		this.nomeMae = nomeMae;
		this.estadoCivil = estadoCivil;
		this.grauInstrucao = grauInstrucao;
		this.formacaoAcademia = formacaoAcademia;
		this.especializacao = especializacao;
		this.identidade = identidade;
		this.endereco = endereco;
		this.registroProfissional = registroProfissional;
		this.dadosFuncionais = dadosFuncionais;
	}

	/**
	 * @param cpf
	 * @param nome
	 * @param naturalidade
	 * @param nacionalidade
	 * @param sexo
	 * @param dataNascimento
	 * @param uf
	 * @param nomePai
	 * @param nomeMae
	 */
	public Servidor(String cpf, String nome, String naturalidade,
			String nacionalidade, String sexo, Date dataNascimento, String uf,
			String nomePai, String nomeMae) {
		super();
		this.cpf = cpf;
		this.nome = nome;
		this.naturalidade = naturalidade;
		this.nacionalidade = nacionalidade;
		this.sexo = sexo;
		this.dataNascimento = dataNascimento;
		this.uf = uf;
		this.nomePai = nomePai;
		this.nomeMae = nomeMae;
		this.estadoCivil = new EstadoCivil();
		this.grauInstrucao = new GrauInstrucao();
		this.formacaoAcademia = new FormacaoAcademica();
		this.especializacao = new Especializacao();
		this.identidade = new Identidade();
		this.endereco = new Endereco();
		this.registroProfissional = new RegistroProfissional();
		this.dadosFuncionais = new ArrayList<DadosFuncionais>();
	}

	/**
	 * 
	 */
	public Servidor() {
		super();
		this.cpf = "";
		this.nome = "";
		this.naturalidade = "";
		this.nacionalidade = "";
		this.sexo = "";
		this.dataNascimento = Calendar.getInstance().getTime();
		this.uf = "";
		this.nomePai = "";
		this.nomeMae = "";
		this.estadoCivil = new EstadoCivil();
		this.grauInstrucao = new GrauInstrucao();
		this.formacaoAcademia = new FormacaoAcademica();
		this.especializacao = new Especializacao();
		this.identidade = new Identidade();
		this.endereco = new Endereco();
		this.registroProfissional = new RegistroProfissional();
		this.dadosFuncionais = new ArrayList<DadosFuncionais>();

	}

	/**
	 * @return the cpf
	 */
	public String getCpf() {
		return cpf;
	}

	/**
	 * @param cpf
	 *            the cpf to set
	 */
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	/**
	 * @return the nome
	 */
	public String getNome() {
		return nome;
	}

	/**
	 * @param nome
	 *            the nome to set
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * @return the naturalidade
	 */
	public String getNaturalidade() {
		return naturalidade;
	}

	/**
	 * @param naturalidade
	 *            the naturalidade to set
	 */
	public void setNaturalidade(String naturalidade) {
		this.naturalidade = naturalidade;
	}

	/**
	 * @return the nacionalidade
	 */
	public String getNacionalidade() {
		return nacionalidade;
	}

	/**
	 * @param nacionalidade
	 *            the nacionalidade to set
	 */
	public void setNacionalidade(String nacionalidade) {
		this.nacionalidade = nacionalidade;
	}

	/**
	 * @return the sexo
	 */
	public String getSexo() {
		return sexo;
	}

	/**
	 * @param sexo
	 *            the sexo to set
	 */
	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	/**
	 * @return the dataNascimento
	 */
	public Date getDataNascimento() {
		return dataNascimento;
	}

	/**
	 * @param dataNascimento
	 *            the dataNascimento to set
	 */
	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	/**
	 * @return the uf
	 */
	public String getUf() {
		return uf;
	}

	/**
	 * @param uf
	 *            the uf to set
	 */
	public void setUf(String uf) {
		this.uf = uf;
	}

	/**
	 * @return the nomePai
	 */
	public String getNomePai() {
		return nomePai;
	}

	/**
	 * @param nomePai
	 *            the nomePai to set
	 */
	public void setNomePai(String nomePai) {
		this.nomePai = nomePai;
	}

	/**
	 * @return the nomeMae
	 */
	public String getNomeMae() {
		return nomeMae;
	}

	/**
	 * @param nomeMae
	 *            the nomeMae to set
	 */
	public void setNomeMae(String nomeMae) {
		this.nomeMae = nomeMae;
	}

	/**
	 * @return the estadoCivil
	 */
	public EstadoCivil getEstadoCivil() {
		return estadoCivil;
	}

	/**
	 * @param estadoCivil
	 *            the estadoCivil to set
	 */
	public void setEstadoCivil(EstadoCivil estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	/**
	 * @return the grauInstrucao
	 */
	public GrauInstrucao getGrauInstrucao() {
		return grauInstrucao;
	}

	/**
	 * @param grauInstrucao
	 *            the grauInstrucao to set
	 */
	public void setGrauInstrucao(GrauInstrucao grauInstrucao) {
		this.grauInstrucao = grauInstrucao;
	}

	/**
	 * @return the formacaoAcademia
	 */
	public FormacaoAcademica getFormacaoAcademia() {
		return formacaoAcademia;
	}

	/**
	 * @param formacaoAcademia
	 *            the formacaoAcademia to set
	 */
	public void setFormacaoAcademia(FormacaoAcademica formacaoAcademia) {
		this.formacaoAcademia = formacaoAcademia;
	}

	/**
	 * @return the especializacao
	 */
	public Especializacao getEspecializacao() {
		return especializacao;
	}

	/**
	 * @param especializacao
	 *            the especializacao to set
	 */
	public void setEspecializacao(Especializacao especializacao) {
		this.especializacao = especializacao;
	}

	/**
	 * @return the identidade
	 */
	public Identidade getIdentidade() {
		return identidade;
	}

	/**
	 * @param identidade
	 *            the identidade to set
	 */
	public void setIdentidade(Identidade identidade) {
		this.identidade = identidade;
	}

	/**
	 * @return the endereco
	 */
	public Endereco getEndereco() {
		return endereco;
	}

	/**
	 * @param endereco
	 *            the endereco to set
	 */
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	/**
	 * @return the registroProfissional
	 */
	public RegistroProfissional getRegistroProfissional() {
		return registroProfissional;
	}

	/**
	 * @param registroProfissional
	 *            the registroProfissional to set
	 */
	public void setRegistroProfissional(
			RegistroProfissional registroProfissional) {
		this.registroProfissional = registroProfissional;
	}

	/**
	 * @return the dadosFuncionais
	 */
	public Collection<DadosFuncionais> getDadosFuncionais() {
		return dadosFuncionais;
	}

	/**
	 * @param dadosFuncionais
	 *            the dadosFuncionais to set
	 */
	public void setDadosFuncionais(Collection<DadosFuncionais> dadosFuncionais) {
		this.dadosFuncionais = dadosFuncionais;
	}

	public boolean isFlagDeletado() {
		return flagDeletado;
	}

	public void setFlagDeletado(boolean flagDeletado) {
		this.flagDeletado = flagDeletado;
	}

	
}
